Storage system, and access path state update method

ABSTRACT

A storage system includes: an access path management unit managing a state of each access path for each logical disk; an I/O speed calculation unit storing, for each of the access paths, a data size and required time obtained when an I/O is executed, and calculates an I/O speed for every calculation cycle; a path candidate selection unit selecting an access path in the available state as an I/O use candidate; and a path candidate exclusion unit which excludes access paths of which speed is slow from the candidates, using a highest speed value among the speed values of the access paths selected as candidates, and the access path management unit sequentially changes the states of the access paths, out of the remaining candidates, to the I/O use states, in order of the I/O speed from the fastest until the number of access paths reaches the maximum number of paths.

This application is based upon and claims the benefit of priority fromJapanese patent application No. 2011-077273, filed on Mar. 3, 2011, thedisclosure of which is incorporated herein in its entirety by reference.

BACKGROUND

The present invention relates to a storage system, and an access pathstate update method.

Availability can be improved in a storage system by making a pluralityof access paths redundant, since even if one access path fails, the pathcan be switched to another access path and continue communication.Furthermore the I/O can be faster if a band is widened by using aplurality of access paths for an I/O.

Patent Publication JP-A-2000-348005 discloses a storage system whichmakes paths redundant using access paths having differentcharacteristics. The system uses an SAN (Storage Area Network) as theI/O during normal time use, and uses a LAN (Local Area Network) when afailure occurs to the SAN. Patent Publication JP-A-2007-287064 disclosesa storage system which determines an access path to be used, out of aplurality of access paths, according to the performance information andpredefined policy. Further, Patent Publication JP-A-2007-94681 disclosesa storage system which issues a license key for enabling a port that isnot in use, according to the utilization factors of the access paths andoccurrence of failure, and switches the current path to the enabledaccess path.

In the case of the system disclosed in Patent PublicationJP-A-2000-348005, a SAN is used for the operating system, and a LAN isused for the standby system, an I/O is issued for only one of these, andthe load conditions are not considered. In the case of the systemdisclosed in Patent Publication JP-A-2007-287064, an access path to beused can be determined by periodically checking the operation state ofthe access paths, but the quick handling of an occurrence of a failureis not considered. In the case of the system disclosed in PatentPublication JP-A-2007-94681, a management server for managing thelicense is essential, and processing to enable and disable the accesspaths is generated, which makes the configuration complicated.

SUMMARY

With the foregoing in view, it is an exemplary object of the presentinvention to provide a storage system, and an access path state updatemethod, which can quickly switch the current access path to a moreefficient access path according to the load state, occurrence of afailure or the like, using a simple configuration.

A storage system according to an exemplary aspect of the presentinvention comprises: a plurality of access paths which are set between ahost computer and a storage device; an access path management unit whichmanages a state of each of the access paths independently for eachlogical disk formed on the storage device; an I/O speed calculation unitwhich stores, for each of the access paths, a data size and requiredtime obtained when an I/O is executed using the access path, andcalculates an I/O speed using the stored data size and required time,for every predetermined calculation cycle; a path candidate selectionunit which selects, out of the access paths and as a candidate of theaccess path to be used for the I/O, to the logical disk, an access pathof which access path state is set to an available state, when acondition to update the access path state is established; and a pathcandidate exclusion unit which calculates a performance determinationthreshold using a highest speed value among the I/O speed valuescorresponding to the access paths selected by the path candidateselection unit, and excludes the access paths of which I/O speed valuesare lower than the performance determination threshold from thecandidates, wherein the access path management unit updates the statesof the access paths by sequentially changing the states of the accesspaths, out of the candidates remaining after the exclusion by the pathcandidate exclusion unit, to the states of being available for the I/Oto the logical disk, in order of the I/O speed from fastest until thenumber of access paths reaches the maximum number of paths which is setin advance.

An access path state update method according to an exemplary aspect ofthe present invention is a method for updating states of a plurality ofaccess paths which are set between a host computer and a storage device,comprising the steps of: managing a state of each of the access pathsindependently for each logical disk formed on the storage device;storing, for each of the access paths, a data size and required timeobtained when an I/O is executed using the access path, and calculatingan I/O speed using the stored data size and required time, for everypredetermined calculation cycle; selecting, out of the access paths andas a candidate of the access path to be used for the I/O to the logicaldisk, an access path of which access path state is set to an availablestate, when a condition to update the access path state is established;calculating a performance determination threshold using a highest speedvalue among the I/O speed values corresponding to the selected accesspaths, and excluding the access paths of which I/O speed values arelower than the performance determination threshold from the candidates;and updating the states of the access paths by sequentially changing thestates of the access paths, out of the candidates remaining after theexclusion, to the states of being available for the I/O to the logicaldisk, in order of the I/O speed from fastest until the number of accesspaths reaches the maximum number of paths which is set in advance.

A recording medium storing a program of the present invention has acomputer execute each step included in the access path state updatemethod.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting an example of a configuration of astorage system according to an embodiment;

FIG. 2 shows an example of data configuration of the access path loadstate table;

FIG. 3 shows an example of data configuration of the access path statetable;

FIG. 4 shows an example of data configuration of the I/O loaddistribution information table;

FIG. 5 is a flow chart depicting an operation to recognize the logicaldisk;

FIG. 6 is a flow chart depicting an operation to update a size item anda required time item of the access path load state table;

FIG. 7 is a flow chart depicting an operation to update a speed item ofthe access path load state table;

FIG. 8 is a flow chart depicting an operation to update an access pathstate item of the access path state table;

FIG. 9 is a flow chart depicting an operation to update an access pathstate item of the access path state table;

FIG. 10 shows an example of data stored in the access path load statetable;

FIG. 11 shows an example of data stored in the access path state table;

FIG. 12 shows an example of data stored in the I/O load distributioninformation table;

FIG. 13 shows an example of data stored in the access path state table;

FIG. 14 shows an example of data stored in the access path state table;and

FIG. 15 shows an example of data stored in the access path state table.

EXEMPLARY EMBODIMENT

Preferred embodiments of a storage system, and an access path stateupdate method according to the present invention will now be describedwith reference to the accompanying drawings.

First a configuration of a storage system according to an embodimentwill be described with reference to FIG. 1. As FIG. 1 shows, the storagesystem has a host computer 1, and a storage device 2 for forming one ora plurality of logical disk(s) 21. The host computer 1 and the storagedevice 2 have a plurality of ports 10 and a plurality of ports 20respectively. The host computer 1 and the storage device 2 are connectedvia the ports 10 and the ports 20 respectively. A path connecting theport 10 and the port 20 is called an “access path” 30.

Examples of a method for installing an access path 30 are a method ofconnecting from an FCHBA (Fiber Channel Host Bus Adapter) installed onthe host computer 1 to an FC (Fiber Channel) port of the storage device2 by an FC cable via an FC switch, based on the FC protocol, and amethod of connecting with an IP (Internet Protocol) network based on theiSCSI (internet Small Computer System Interface) protocol.

A plurality of methods may be used to install the access paths 30. Inconcrete terms, an access path 30 is connected based on the FC protocol,and another access path 30 is connected based on the iSCSI protocol.

Here the host computer 1 physically includes a CPU (Central ProcessingUnit), a storage apparatus, and an input/output interface. The storageapparatus includes such elements as ROM (Read Only Memory) and HDD (HardDisk Drive) for storing programs and data to be processed by the CPU,and RAM (Random Access Memory), which is primarily used for various workareas for control processing. These elements are interconnected via abus. The later mentioned functions of each component in the hostcomputer 1 can be implemented by the CPU executing the programs storedin ROM and the processing data developed in RAM.

The functional configuration of the host computer 1 will now bedescribed with reference to FIG. 1. The host computer 1 functionally hasan access path management unit 11, which includes an I/O speedcalculation unit 12, a path candidate selection unit 13 and a pathcandidate exclusion unit 14, for example. The host computer 1 has anaccess path load state table 15, an access path state table 16 and anI/O load distribution information table 17, to which each componentrefers.

Now a data configuration of the access path load state table 15 will bedescribed with reference to FIG. 2. As data items, the access path loadstate table has an access path identifier item, a size item, a requiredtime item and a speed item. The size item, the required time item andthe speed item are created for Read-I/O and Write-I/O respectively. Theaccess path identifier item stores identification information foruniquely specifying an access path 30. The size item stores anaccumulated value of the data size in Read-I/O or Write-I/O, which isgenerated at predetermined intervals. The required time item storesaccumulated time of the required time for Read-I/O or Write-I/O, whichis generated at predetermined intervals. The speed item stores theprocessing speed of Read-I/O or Write-I/O. The initial state of theaccess path load state table 15 is an empty table.

A data configuration of the access path state table 16 will be describednext with reference to FIG. 3. As data items, the access path statetable 16 has a logical disk identifier item, an access path identifieritem, and an access path state item. The access path identifier item andthe access path state item are created for each access path 30,constituting an access path list. The logical disk identifier itemstores identification information for uniquely specifying a logical disk21. The access path identification item stores identificationinformation for uniquely specifying an access path 30. The access pathstate item stores the state of an access path 30. Examples of the stateof an access path 30 that can be used here are: “Read” which is usedonly for reading, “Write” which is used only for writing, “Read/Write”which is used for both reading and writing, “Standby” which is not usedfor an I/O, but for a state where the access path is currentlyavailable, and “Failed” which is a state where a failure occurred andthe access path cannot be used for the I/O. The initial state of theaccess path state table 16 is an empty table.

A data configuration of the I/O load distribution information table 17will be described next with reference to FIG. 4. The I/O loaddistribution information table 17 has the following data items: an I/Ospeed update cycle item, an I/O issue cycle item, a maximum path itemand a speed threshold item. The maximum path item and the speedthreshold item are created for Read-I/O and Write-I/O respectively. TheI/O speed update cycle item stores a cycle to update the speed item inthe access path load state table 15. The I/O issue cycle item stores acycle to issue an I/O. The maximum path item stores a maximum number ofaccess paths 30 that can be used for Read-I/O and Write-I/O. The speedthreshold item stores a ratio of the speed to the highest speed value,that is required to calculate the performance determination thresholdfor selecting a candidate of the access path 30. In the initial state ofthe I/O load distribution information table 17, values appropriate foran operation policy are set in each item in advance.

The I/O speed calculation unit 12 shown in FIG. 1 stores a data size andrequired time obtained when an I/O is executed using the access path 30in the access path load state table 15, for each access path 30. The I/Ospeed calculation unit 12 calculates the I/O speed for eachpredetermined calculation cycle, using the data size and required timein the access path load state table 15, and stores the calculated speedin the access path load state table 15. An I/O includes Read-I/O andWrite-I/O.

The path candidate selection unit 13 selects a candidate of the accesspath 30 to be used for an I/O to the logical disk 21, out of the accesspaths 30 when a condition to update the access path state managed by theaccess path state table 16 is satisfied.

Examples of the condition to update the access path state are: anincrease/decrease of available access paths 30, a detection of failurein an access path 30, a recovery of an access path 30 from failure, andan update of I/O speed upon elapse of the I/O speed update cycle in theI/O load distribution information table 17.

When a candidate of the access path 30 is selected, the path candidateselection unit 13 selects an access path 30 of which access path stateis set to an available state. Examples of available states are: “Read”,“Write”, “Read/Write” and “Standby”. An example of an unavailable stateis “Failed”. This procedure will be described in concrete terms withreference to FIG. 3.

Candidates of an access path to the logical disk 21, of which logicaldisk identifier in FIG. 3 is “LUN1”, are: “path 1” to “path 3”, and“path 4”, of which access path state is “Failed”, is excluded.Candidates of an access path to the logical disk 21, of which logicaldisk identifier is “LUN2” are: “path 1” to “path 3”, and “path 4”, ofwhich access path state is “Failed”, is excluded.

The path candidate exclusion unit 14 calculates a performancedetermination threshold using the highest speed value out of the I/Ospeed values corresponding to the access paths 30 selected by the pathcandidate selection unit 13, and excludes an access path 30, of whichI/O speed is slower than the performance determination threshold, fromthe candidates. This procedure will be described in concrete terms withreference to FIG. 2 and FIG. 4.

In the Read-I/O speed in FIG. 2, the speed of “path 1”, “800 MB/sec” isthe highest. The Read-I/O speed threshold in FIG. 4 is “60%”. In thiscase, the path candidate exclusion unit 14 calculates “800MB/sec”×“0.6”=“480 MB/sec” as the performance determination threshold.If “path 1” to “path 3” in FIG. 2 are selected as the access pathcandidates, the path candidate exclusion unit 14 excludes “path 3”,which is slower than “480 MB/sec”, from the candidates.

The access path management unit 11 manages the access path state table16, and manages the access paths 30 from the host computer 1 to thelogical disks 21 of the storage device 2. The access path managementunit 11 issues an I/O to the plurality of access paths 30, so as toimplement load distribution.

Out of the candidates remaining after the exclusion by the pathcandidate exclusion unit 14, the access path management unit 11 updatesthe access path state to a state available for an I/O to the logicaldisk 21 in order of the I/O speed from fastest until the number of pathsreaches the maximum number of paths which is set in advance. Thisprocedure will be described in concrete terms with reference to FIG. 2to FIG. 4.

For example, a case when “path 1” and “path 2” remain as access pathcandidates for Read-I/O to the logical disk 21, of which logical diskidentifier is “LUN1”, will be described. In this case, according to thespeed values in FIG. 2, “path 1” is faster than “path 2”. The maximumnumber of paths for Read-I/O is “2” in FIG. 4. Therefore the access pathmanagement unit 11 updates the access path state of “path 1” and theaccess state of “path 2”, which are stored corresponding to the logicaldisk identifier “LUN1” in FIG. 3, to “Read”.

If a failure is detected in an access path 30, the access pathmanagement unit 11 refers to the access path state table 16 using theaccess path identifier of the detected access path 30, and changes theaccess path state corresponding to this access path identifier to“Failed”. Then a failover to another access path 30 becomes possible,and a redundancy of access paths is implemented.

If a recovery of an access path 30 from a failure is detected, theaccess path management unit 11 refers to the access path state table 16using the access path identifier of the detected access path 30, andchanges the access path state corresponding to this access pathidentifier to “Standby”.

Now an operation of the storage system will be described.

An operation when the access path management unit 11 recognizes alogical disk 21 will be described with reference to FIG. 5.

First the access path management unit 11 adds a new entry to the accesspath load state table 15, and stores the access path identifier of theaccess path 30, used when the logical disk 21 was recognized, in theaccess path identifier item (step S101).

Then using the logical disk identifier of the recognized logical disk21, the access path management unit 11 searches for an entry having alogical disk identifier matching with this logical disk identifier inthe access path state table 16 (step S102). If a matched entry does notexist in this search (step S103: NO), the access path management unit 11adds a new entry to the access path state table 16, stores the logicaldisk identifier of the recognized logical disk 21 in the logical diskidentifier item, stores the access path identifier of the access path 30used when the logical disk 21 was recognized, in the access pathidentifier item, and stores “Standby” in the access path state item(step S104).

If a matched entry exists in the search in step S102 (step S102: YES),on the other hand, the access path management unit 11 determines whetherthe access path identifier stored in step S101 is included in thematched entry (step S105). If the result is NO (step S105: NO), theaccess path management unit 11 adds the access path identifier item andthe access state item to the access path list of the matched entry, andstores the access path identifier of the access path 30 used when thelogical disk 21 is recognized, and “Standby” in these items respectively(step S106).

If it is determined that the access path identifier is included in thematched entry of which access identifier is matched in the result ofstep S105 (step S105: YES), on the other hand, the access pathmanagement unit 11 changes the access state item corresponding to thisaccess path identifier to “Standby” (step S107).

Now an operation when the access path management unit 11 updates thesize item and required time item of the access path load state table 15will be described with reference to FIG. 6.

When a request to issue an I/O to a logical disk 21 managed by theaccess path state table 16 is received, the access path management unit11 determines an access path 30 to which the I/O is issued (step S201).Details on the procedure when the access path 30 is determined will bedescribed later.

Then the access path management unit 11 records the I/O start time, andissues the I/O to the access path 30 determined in step S201 (StepS202).

Then the access path management unit 11 determines whether theprocessing status of the issued I/O is a success or not (step S203). Ifthe result is NO (step S203: NO), the access path management unit 11executes error processing (step S204). Examples of the error processinghere are: reissuing the I/O to the same access path 30; closing thisaccess path 30 to which the I/O was issued, assuming that a failureoccurred to this access path 30, and resending the I/O to another accesspath 30; or returning an error to the source which requested issuing ofthe I/O.

If the I/O is issued again as a result of the error processing (stepS205: YES), processing returns to step S201. If the I/O is not issuedagain (step S205: NO), this operation ends.

If it is determined that the processing status is a success in theresult of step S203 (step S203: YES), on the other hand, then the accesspath management unit 11 calculates the required time of the I/O based onthe current time and I/O start time (step S206).

Then the access path management unit 11 extracts an entry, matching withthe access path identifier of the access path 30 to which the I/O wasissued, from the access path load state table 15 (step S207).

Then the access path management unit 11 checks the type of the issuedI/O (step S208). If the type of the I/O is “Read” in the result of thecheck, the access path management unit 11 adds the data size of theissued I/O to the Read-I/O size of the entry extracted in step S206, andadds the required time of the I/O calculated in step S205 to theRead-I/O required time of this entry (step S209).

If the type of I/O is “Write” in the result of the check in step S208,the access path management unit 11 adds the data size of the issued I/Oto the Write-I/O size of the entry extracted in step S206, and adds therequired time of the I/O calculated in step S206 to the Write-I/Orequired time of this entry (step S210).

If the type of I/O is neither “Read” nor “Write” in the result of thecheck in step S208, on the other hand, then this operation ends.

In order to update the size and required time of an I/O, an I/O issuerequest is needed. This means that the size and required time of an I/Oare not updated for an access path which is not used for an I/O and anaccess path to which an I/O is not issued. To prevent this state, theaccess path management unit 11 periodically issues an I/O forinspection. In concrete terms, the access path management unit 11 issuesa Read-I/O and a Write-I/O for inspection at each I/O issue cycle of theI/O load distribution information table 17. Whereby a load state can beperiodically updated for all the access paths.

The method for determining an access path 30 described in step S201 willbe described next.

If an access path to which an I/O is issued is specified in advance,such as the above mentioned case of issuing an I/O for inspection, thespecified access path is used for the I/O.

If an access path to which an I/O is issued is not specified in advance,on the other hand, it is determined whether the I/O to be issued is aRead-I/O or a Write-I/O.

If the I/O to be issued is a Read-I/O, an entry having a logical diskidentifier matching with the logical disk identifier of the logical disk21, to which the I/O is issued, is extracted from the access path statetable 16. Then an access path, of which access path state is“Read/Write” or “Read”, is selected from the access path list of theextracted entry, and is used for the I/O.

If the I/O to be issued is a Write-I/O, an entry having a logical diskidentifier matching with the logical disk identifier of the logical disk21, to which the I/O is issued, is extracted from the access path statetable 16. Then an access path of which access path state is “Read/Write”or “Write” is selected from the access path list of the extracted entry,and is used for the I/O.

If the I/O to be used is neither “Read” nor “Write”, then an access pathto be used is determined in the same manner as the above mentioned I/Ofor read.

If a plurality of access paths are used, load is distributed among them.For the load distribution method, a round-robin method, where eachaccess path is number and used in numerical order for each I/O, can beused, for example.

Now an operation of the access path management unit 11, updating thespeed item of the access path load state table 15, will be describedwith reference to FIG. 7. The access path management unit 11 executesthis operation for each I/O speed update cycle of the I/O loaddistribution information table 17. The access path management unit 11executes each of the following processings repeatedly for all theentries of the access path load state table 15, that is, for all theaccess paths 30.

First the access path management unit 11 determines whether the requiredtime of the Read-I/O of the target entry is “0” or not (step S301). Ifthe result is YES (step S301: YES), the processing advances to stepS303, which is described later. If it is determined that the requiredtime of Read-I/O is not “0” in step S301 (step S301: NO), on the otherhand, the access path management unit 11 stores a value, generated bydividing the size of Read-I/O by the required time of Read-I/O, in thespeed item of Read-I/O for an update (step S302).

Then the access path management unit 11 determines whether the requiredtime of Write-I/O of the target entry is “0” or not (step S303). If theresult is YES (step S303: YES), the processing advances to step S305,which is described later.

If it is determined that the required time of Write-I/O is not “0” instep S303 (step S303: NO), on the other hand, the access path managementunit 11 stores a value, generated by dividing the size of Write-I/O bythe required time of Write-I/O, in the speed item of Write-I/O for anupdate (step S304).

Then the access path management unit 11 resets the size and requiredtime of Read-I/O and the size and required time of Write-I/O of thetarget entry to “0” respectively for an update (step S305).

By repeating the processing in the above steps S301 to S305 for all theentries of the access path load state table 15, the update of the I/Ospeed is completed.

Now an operation when the access path management unit 11 updates theaccess path state item of the access path state table 16 will bedescribed with reference to FIG. 8 and FIG. 9. The access pathmanagement unit 11 starts this operation when conditions to update theaccess path state are established. The access path management unit 11repeatedly executes each processing herein below for all the entries ofthe access path state table 16, that is, for all the logical disks 21.

First the access path management unit 11 selects all the access paths,other than those of which access path state is “Failed”, out of theaccess paths 30 registered in the access path list of the target entry,as candidates of Read-I/O and Write-I/O respectively (step S401).

Then out of the access path load state table 15, the access pathmanagement unit 11 extracts all the entries having access pathidentifiers matching with the access path identifiers of the accesspaths selected as the candidates of Read-I/O in step S401 (step S402).

Then the access path management unit 11 compares the speed value ofRead-I/O of each entry selected in step S402, and determines the highestspeed value (step S403).

Then the access path management unit 11 multiplies the highest speedvalue determined in step S403 by the speed threshold of Read-I/O in theI/O load distribution information table 17, so as to calculate theperformance determination threshold (step S404).

If there is a speed value that is less than the performancedetermination threshold calculated in step S404, among the speed valuesof Read-I/O of each entry extracted in step S402, the access pathmanagement unit 11 excludes the access path corresponding to this speedvalue from the candidates of Read-I/O (step S405).

Then the access path management unit 11 determines whether the number ofremaining candidates of Read-I/O, after the exclusion in step S405, isgreater than the maximum number of paths of Read-I/O in the I/O loaddistribution information table 17 (step S406). If the result is NO (stepS406: NO), the processing advances to the later mentioned step S408.

If it is determined that the number of candidates of Read-I/O is greaterthan the maximum number of paths in step S406 (step S406: YES), on theother hand, the access path management unit 11 selects the candidates ofRead-I/O in order of the Read-I/O speed from fastest until the number ofaccess paths reaches the maximum number of paths, and excludes the restfrom the candidates of Read-I/O (step S407).

Then the access path management unit 11 extracts, from the access pathload state table 15, all the entries having the access path identifiersmatching with the access path identifiers of access paths selected asthe candidates of Write-I/O in step S401 (step S408).

Then the access path management unit 11 compares the speed value ofWrite-I/O of each entry extracted in step S408, and determines thehighest speed value (step S409).

Then the access path management unit 11 multiplies the highest speedvalue determined in step S409 by the speed threshold of Write-I/O in theI/O load distribution information table 17, so as to calculate theperformance determination threshold (step S410).

If there is a speed value that is less than the performancedetermination threshold calculated in step S410 among the speed valuesof Write-I/O in each entry extracted in step S408, the access pathmanagement unit 11 excludes the access path corresponding to this speedfrom the candidates of Write-I/O (step S411).

Then the access path management unit 11 determines whether the number ofremaining candidates of Write-I/O after the exclusion in step S411 isgreater than the maximum number of paths of Write-I/O in the I/O loaddistribution information table 17 (step S412). If the result is NO (stepS412: NO), the processing advances to the later mentioned step S414.

If it is determined that the number of candidates of Write-I/O isgreater than the maximum number of paths in step S412 (step S412: YES),on the other hand, the access path management unit 11 selects thecandidates of Write-I/O in order of the Write-I/O speed from fastestuntil the number of access paths reaches the maximum number of paths,and excludes the rest from the candidates of Write-I/O (step S413).

Based on the candidates of Read-I/O remaining in step S407, and thecandidates of Write-I/O remaining in step S413, the access pathmanagement unit 11 updates the states of access paths registered in theaccess path list of the target entry (step S414).

The states of the access paths after an update is as follows.

If an access path is selected as a candidate for both Read-I/O andWrite-I/O, the access path state of this candidate is updated to“Read/Write”.

If an access path is selected as a candidate only for Read-I/O, theaccess path state of this candidate is updated to “Read”.

If an access path is selected as a candidate only for Write-I/O, theaccess path state of this candidate is updated to “Write”.

If an access path is not selected as a candidate for Read-I/O norWrite-I/O, the access path state of this access path is updated to“Standby”.

The processing in steps S401 to S414 are repeated for all the entries ofthe access path state table 16, whereby the update of the access pathstate is completed.

Now an operation when the access path state is updated as shown in FIG.8 and FIG. 9 will be described using a concrete example.

This operation example is based on the following assumption. There arefour access paths from the host computer 1 to the storage device 2, ofwhich access path identifiers are “path 1”, “path 2”, “path 3” and “path4” respectively. The “path 1” and “path 2” are access paths which aredirectly connected from the host computer 1 to the storage device 2, and“path 3” and “path 4” are access paths which are connected to thestorage device 2 via a common network. The storage device 2 has alogical disk 21, of which logical disk identifier is “LUN1”.

FIG. 10 shows the content of the access path load state table 15 whenthis operation is started, FIG. 11 shows the content of the access pathstate table 16, and FIG. 12 shows the content of the I/O loaddistribution information table 17.

First candidates of Read-I/O and Write-I/O are selected in step S401. Noaccess path state is “Failed” in the access path state table 16 in FIG.11, so “path 1”, “path 2”, “path 3” and “path 4” are selected ascandidates of Read-I/O and Write-I/O.

Then in step S403, the highest speed value of Read-I/O is determined. Inthe case of the access path load state table 15 in FIG. 10, “1000MB/sec” of “path 1” is determined as the highest speed value.

Then in step S405, each access path of which speed value is less thanthe performance determination threshold of Read-I/O is excluded from thecandidates of Read-I/O. In the case of the I/O load distributioninformation table 17 in FIG. 12, the speed threshold of Read-I/O is“60%”, and the highest speed value is “1000 MB/sec”, therefore theperformance determination threshold is “600 MB/sec”. In the case of theaccess path load state table 15 in FIG. 10, the speed values of “path 3”and “path 4” are less than “600 MB/sec”, so “path 3” and “path 4” areexcluded from the candidates of Read-I/O.

Then in step S406, the number of remaining candidates of Read-I/O ischecked. In the case of the I/O load distribution information table 17in FIG. 12, the maximum number of paths of Read-I/O is “2”, and thenumber of remaining candidates of Read-I/O is also “2”, so herecandidates are not narrowed down.

Then in step S409, the highest speed value of Write-I/O is determined.In the case of the access path load state table 15 in FIG. 10, “500MB/sec” of “path 1” is determined as the highest speed value.

Then in step S411, each access path of which speed value is less thanthe performance determination threshold of Write-I/O is excluded fromthe candidates of Write-I/O. In the case of the I/O load distributioninformation table 17 in FIG. 12, the speed threshold of Write-I/O is“50%”, and the highest speed value is “500 MB/sec”, therefore theperformance determination threshold is “250 MB/sec”. In the case of theaccess path load state table 15 in FIG. 10, the speed value of “path 4”is less than “250 MB/sec”, so “path 4” is excluded from the candidatesof Write-I/O.

Then in step S412, the number of remaining candidates of Write-I/O ischecked. In the case of the I/O load distribution information table 17in FIG. 12, the maximum number of paths of Write-I/O is “2”, and thenumber of remaining candidates of Write-I/O is “3”, so here candidatesare narrowed down.

Then in step S413, the candidates of Write-I/O are narrowed down to bethe maximum number of paths of Write-I/O in order of the Write-I/O fromfastest. In the case of the access path load state table 15 in FIG. 10,the order of the Write-I/O speed from fastest is: “path 1”, “path 2” and“path 3”, therefore “path 3” is excluded from the candidates ofWrite-I/O. As a result, “path 1” and “path 2” remain as candidates ofWrite-I/O.

Then in step S414, the access path state registered in the access pathlist of the target entry is updated. In the case of this operationexample, “path 1” and “path 2” are candidates for both Read-I/O andWrite-I/O. FIG. 13 shows the content of the access path state table 16after the update in this case. As FIG. 13 shows, the access path statesof “path 1” and “path 2” are updated to “Read/Write”, and the accesspath states of “path 3” and “path 4” are updated to “Standby”.

Now a case of a failure occurring to “path 1” in the state of the accesspath state table 16 shown in FIG. 13 will be described. FIG. 14 showsthe content of the access path state table 16 after the failureoccurred.

As FIG. 14 shows, the access path state of “path 1” is updated to“Failed”. Therefore “path 1” is excluded from the candidates of Read-I/Oand Write-I/O.

In this case, the highest speed value of the Read-I/O is “800 MB/sec”,and “path 3” and “path 4”, of which speed values are less than “480MB/sec”, that is “60%” of “800 MB/sec”, are excluded from the candidatesof Read-I/O. Therefore only “path 2” is a candidate of Read-I/O.

The highest speed value of Write-I/O, on the other hand, is “400MB/sec”, and “path 4”, of which speed value is less than “200 MB/sec”,that is “50%” of “400 MB/sec”, is excluded from the candidates ofWrite-I/O. Therefore “path 2” and “path 3” are candidates of Write-I/O.

FIG. 15 shows a content of the access path state table 16 in this caseafter the update. As FIG. 15 shows, the access path state of “path 1” isupdated to “Failed”, the access path state of “path 2” is updated to“Read/Write”, the access path state of “path 3” is updated to “Write”,and the access path state of “path 4” is updated to “Standby”.

In other words, the state of using “path 1” and “path 2” for bothRead-I/O and Write-I/O before failure is changed to the state of usingonly “path 2” for Read-I/O, and using both “path 2” and “path 3” forWrite-I/O after failure.

As described above, according to the storage system of the presentembodiment, the access path management unit 11 can determine the accesspaths to be used based on the load states of the access paths. Thereforein the storage system having a plurality of access paths of which loadstates of the I/O are different, performance characteristics based onspeed can be determined, and the access paths to be used for an I/O canbe efficiently determined according to the load distribution policybased on a maximum number of paths and speed threshold.

According to the storage system of the present embodiment, the accesspath management unit 11 can determine the load state based on the speedof the I/O. Therefore even if the band of the access path is shared byan apparatus outside the storage system, the load state can bedetermined.

According to the storage system of the present embodiment, the accessmanagement unit 11 can update the access path state at everypredetermined interval, or every time the access path state changes.Therefore even if an access path is disconnected or if I/O performancedrops, the access path can be switched to an appropriate access path.

Thus according to the storage system of the present embodiment, anaccess path can be quickly switched to a more efficient access pathusing a simple configuration, according to the load state, occurrence ofa failure or the like.

[Variant Form]

The above described embodiment is merely an example, and the intent isnot to exclude various modifications and application of technologieswhich are not explicitly stated in the embodiments. In other words,various modifications can be made without departing from the true spiritand scope of the invention.

For example, in the above mentioned embodiment, a case of using onestorage device was described, but the present invention is not limitedto this. The present invention can also be applied to a case of using aplurality of storage devices. In this case, an access path identifierand a logical disk identifier, which are unique in the storage system,are assigned, whereby this variant form can carry out the invention inthe same manner as the above mentioned embodiment.

In the above mentioned embodiment, a case of using one host computer wasdescribed, but the present invention is not limited to this. The presentinvention can also be applied to a case of using a plurality of hostcomputers. In this case, the access path management unit in each hostcomputer manages the access paths connected to its own host computer. Ifan access path identifier, which is unique in the storage system, isassigned, the present invention can be carried out in the same manner asthe above mentioned embodiment.

An exemplary advantage according to the present invention, the currentaccess path can be quickly switched to a more efficient access pathaccording to the load state, occurrence of a failure or the like, usinga simple configuration.

The whole or part of the exemplary embodiments disclosed above can bedescribed as, but not limited to, the following supplementary notes.

(Supplementary note 1) A storage system comprising: a plurality ofaccess paths which are set between a host computer and a storage device;an access path management unit which manages a state of each of theaccess paths independently for each logical disk formed on the storagedevice; an I/O speed calculation unit which stores, for each of theaccess paths, a data size and required time obtained when an I/O isexecuted using the access path, and calculates an I/O speed using thestored data size and required time, for every predetermined calculationcycle; a path candidate selection unit which selects, out of the accesspaths and as a candidate of the access path to be used for the I/O tothe logical disk, an access path of which access path state is set to anavailable state, when a condition to update the access path state isestablished; and a path candidate exclusion unit which calculates aperformance determination threshold using a highest speed value amongthe I/O speed values corresponding to the access paths selected by thepath candidate selection unit, and excludes the access paths of whichI/O speed values are lower than the performance determination thresholdfrom the candidates, wherein the access path management unit updates thestates of the access paths by sequentially changing the states of theaccess paths, out of the candidates remaining after the exclusion by thepath candidate exclusion unit, to the states of being available for theI/O to the logical disk, in order of the I/O speed from fastest untilthe number of access paths reaches the maximum number of paths which isset in advance.

(Supplementary note 2) The storage system according to Supplementarynote 1, wherein when a failure is detected in the access path, theaccess path management unit changes the access path state correspondingto the access path in which the failure is detected, into an unavailablestate.

(Supplementary note 3) The storage system according to Supplementarynote 1 or 2, wherein the condition to update the states of the accesspaths includes an increase/decrease of the number of available accesspaths, detection of a failure in the access path, recovery of the accesspath from failure, and an elapse of a predetermined update cycle.

(Supplementary note 4) The storage system according to any one ofSupplementary nots 1 to 3, wherein the I/O includes a Read-I/O and aWrite-I/O.

(Supplementary note 5) An access path state update method for updatingstates of a plurality of access paths which are set between a hostcomputer and a storage device, comprising the steps of: managing a stateof each of the access paths independently for each logical disk formedon the storage device; storing, for each of the access paths, a datasize and required time obtained when an I/O is executed using the accesspath, and calculating an I/O speed using the stored data size andrequired time, for every predetermined calculation cycle; selecting, outof the access paths and as a candidate of the access path to be used forthe I/O to the logical disk, an access path of which access path stateis set to an available state, when a condition to update the access pathstate is established; calculating a performance determination thresholdusing a highest speed value among the I/O speed values corresponding tothe selected access paths, and excluding the access paths of which I/Ospeed values are lower than the performance determination threshold fromthe candidates; and updating the states of the access paths bysequentially changing the states of the access paths, out of thecandidates remaining after the exclusion, to the states of beingavailable for the I/O to the logical disk, in order of the I/O speedfrom fastest until the number of access paths reaches the maximum numberof paths which is set in advance.

(Supplementary note 6) A recording medium storing a program for causinga computer to execute each step described in Supplementary note 5.

While the invention has been particularly shown and described withreference to exemplary embodiments thereof, the invention is not limitedto these embodiments. It will be understood by those of ordinary skillin the art that various changes in form and details may be made thereinwithout departing from the spirit and scope of the present invention asdefined by the claims.

1. A storage system, comprising: a plurality of access paths which areset between a host computer and a storage device; an access pathmanagement unit which manages a state of each of the access pathsindependently for each logical disk formed on the storage device; an I/Ospeed calculation unit which stores, for each of the access paths, adata size and required time obtained when an I/O is executed using theaccess path, and calculates an I/O speed using the stored data size andrequired time, for every predetermined calculation cycle; a pathcandidate selection unit which selects, out of the access paths and as acandidate of the access path to be used for the I/O to the logical disk,an access path of which access path state is set to an available state,when a condition to update the access path state is established; and apath candidate exclusion unit which calculates a performancedetermination threshold using a highest speed value among the I/O speedvalues corresponding to the access paths selected by the path candidateselection unit, and excludes the access paths of which I/O speed valuesare lower than the performance determination threshold from thecandidates, wherein the access path management unit updates the statesof the access paths by sequentially changing the states of the accesspaths, out of the candidates remaining after the exclusion by the pathcandidate exclusion unit, to the states of being available for the I/Oto the logical disk, in order of the I/O speed from fastest until thenumber of access paths reaches the maximum number of paths which is setin advance.
 2. The storage system according to claim 1, wherein when afailure is detected in the access path, the access path management unitchanges the access path state corresponding to the access path in whichthe failure is detected, into an unavailable state.
 3. The storagesystem according to claim 1, wherein the condition to update the statesof the access paths includes an increase/decrease of the number ofavailable access paths, detection of a failure in the access path,recovery of the access path from failure, and an elapse of apredetermined update cycle.
 4. The storage system according to claim 1,wherein the I/O includes a Read I/O and a Write I/O.
 5. An access pathstate update method for updating states of a plurality of access pathswhich are set between a host computer and a storage device, comprisingthe steps of: managing a state of each of the access paths independentlyfor each logical disk formed on the storage device; storing, for each ofthe access paths, a data size and required time obtained when an I/O isexecuted using the access path, and calculating an I/O speed using thestored data size and required time, for every predetermined calculationcycle; selecting, out of the access paths and as a candidate of theaccess path to be used for the I/O to the logical disk, an access pathof which access path state is set to an available state, when acondition to update the access path state is established; calculating aperformance determination threshold using a highest speed value amongthe I/O speed values corresponding to the selected access paths, andexcluding the access paths of which I/O speed values are lower than theperformance determination threshold from the candidates; and updatingthe states of the access paths by sequentially changing the states ofthe access paths, out of the candidates remaining after the exclusion,to the states of being available for the I/O to the logical disk, inorder of the I/O speed from fastest until the number of access pathsreaches the maximum number of paths which is set in advance.
 6. Arecording medium storing a program for causing a computer to executeeach step described in claim 5.